#ifndef CLAVESTRING_H_
#define CLAVESTRING_H_

#include "DatoClave.h"
#include "../Bytes.h"
#include <string>

using namespace std;

/*
 * Funcion: Clase para utilizar claves de tipo string.
 */

class ClaveString: public DatoClave {
private:
	string valorString;
public:
	/*
	 * Pre: -
	 * Pos: Crea una nueva instancia.
	 */
	ClaveString(const string &valor);

	/*
	 * Pre: -
	 * Pos: Libera los recursos instanciados.
	 */
	virtual ~ClaveString();

	virtual bool operator==(const DatoClave& otro)const;
	virtual bool operator<(const DatoClave& otro)const;
	virtual bool operator>(const DatoClave& otro)const;
	virtual bool operator<=(const DatoClave& otro)const;
	virtual std::string toString()const;

	virtual Bytes serializarse();
	virtual bool hidratarse(const Bytes&);

	virtual DatoClave* getCopia();
};

#endif /* CLAVESTRING_H_ */
